package com.wxy.ej.flow.modules.act.dto;

import io.swagger.annotations.ApiModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import org.activiti.engine.FormService;
import org.activiti.engine.RepositoryService;

@ApiModel(description = "ProcessDefinitionDto：程的定义，也就相当于规范")
@Data
@ToString
@EqualsAndHashCode
public class ProcessDefinitionDto {

    //  id的格式为{key}-{version}
    public String id;

    /**
     * category name which is derived from the targetNamespace attribute in the definitions element
     */
    public String category;

    /** label used for display purposes */
    public String name;

    /** unique name for all versions this process definitions */
    public String key;

    /** description of this process **/
    public String description;

    /** version of this process definition */
    public int version;

    /**
     * name of {@link RepositoryService#getResourceAsStream(String, String) the resource} of this process definition.
     */
    public String resourceName;

    /** The deployment in which this process definition is contained. */
    public String deploymentId;

    /** The resource name in the deployment of the diagram image (if any). */
    public String getDiagramResourceName;

    /**
     * Does this process definition has a {@link FormService#getStartFormData(String) start form key}.
     */
    public boolean hasStartFormKey;

    /**
     * Does this process definition has a graphical notation defined (such that a diagram can be generated)?
     */
    public boolean hasGraphicalNotation;

    /** Returns true if the process definition is in suspended state. */
    public boolean isSuspended;

    /** The tenant identifier of this process definition */
    public String tenantId;

    /** The engine version for this process definition (5 or 6) */
    public String engineVersion;



    // form id
    public String formKey;
    // 发送的form数据
    public String formData;
    // 发起人
    public String userId;
    // 指派给谁
    public String assigneeUserId;
    //
    public String businessKey;
}
